/*
 * 版权所有 (C) 2001-2014 深圳市艾派应用系统有限公司。保留所有权利。
 * 版本：
 * 修改记录：
 *		1、2014-11-21，tfl创建。 
 */
package com.chinamobile.ln.ictenterprises.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DataBaseHelper extends SQLiteOpenHelper
{
    private static DataBaseHelper helper;

    public static synchronized DataBaseHelper getHelper(Context context)
    {

        if (helper == null)
        {
            helper = new DataBaseHelper(context);
        }
        return helper;
    }

    public DataBaseHelper(Context context, String name, CursorFactory factory,
        int version)
    {
        super(context, name, factory, version);
    }

    /***
     * 构造方法，如果需要更新数据库版本时可以使用该构造方法
     * @param context context对象
     * @param name 数据库名称
     * @param version 数据库版本
     */
    private DataBaseHelper(Context context, String name, int version)
    {
        this(context, name, null, DBConstants.DATABASE_VERSION);
    }

    /**
     * 构造方法，此构造方法是为了方便使用
     * @param context context对象
     * @param name 数据库名称
     */
    private DataBaseHelper(Context context, String name)
    {
        this(context, name, DBConstants.DATABASE_VERSION);
    }

    /**
     * 构造方法，此构造方法中的数据库名称固定
     * @param context context对象
     */
    private DataBaseHelper(Context context)
    {
        this(context, DBConstants.DATABASE_NAME);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL(DBConstants.getCreateContactsSQL());
        db.execSQL(DBConstants.getCreateGroupSQL());
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        switch (oldVersion)
        {
        case 1:
            upgradeDB1(db);
        }
    }

    /**
     * 数据库升级
     * @param db
     */
    private void upgradeDB1(SQLiteDatabase db)
    {
        db.execSQL("drop table if exists T_Contacts");
        db.execSQL(DBConstants.getCreateContactsSQL());
    }
}
